home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / AbstractAction.class (.txt) next >
Encoding:
Java Class File  |  2006-11-29  |  3.9 KB  |  171 lines

  1. package javax.swing;
  2.  
  3. import java.beans.PropertyChangeEvent;
  4. import java.beans.PropertyChangeListener;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.io.Serializable;
  9. import java.security.AccessController;
  10. import javax.swing.event.SwingPropertyChangeSupport;
  11. import sun.security.action.GetPropertyAction;
  12.  
  13. public abstract class AbstractAction implements Action, Cloneable, Serializable {
  14.    private static Boolean RECONFIGURE_ON_NULL;
  15.    protected boolean enabled;
  16.    private transient ArrayTable arrayTable;
  17.    protected SwingPropertyChangeSupport changeSupport;
  18.  
  19.    static boolean shouldReconfigure(PropertyChangeEvent var0) {
  20.       if (var0.getPropertyName() == null) {
  21.          synchronized(AbstractAction.class) {
  22.             if (RECONFIGURE_ON_NULL == null) {
  23.                RECONFIGURE_ON_NULL = Boolean.valueOf((String)AccessController.doPrivileged(new GetPropertyAction("swing.actions.reconfigureOnNull", "false")));
  24.             }
  25.  
  26.             return RECONFIGURE_ON_NULL;
  27.          }
  28.       } else {
  29.          return false;
  30.       }
  31.    }
  32.  
  33.    static void setEnabledFromAction(JComponent var0, Action var1) {
  34.       var0.setEnabled(var1 != null ? var1.isEnabled() : true);
  35.    }
  36.  
  37.    static void setToolTipTextFromAction(JComponent var0, Action var1) {
  38.       var0.setToolTipText(var1 != null ? (String)var1.getValue("ShortDescription") : null);
  39.    }
  40.  
  41.    static boolean hasSelectedKey(Action var0) {
  42.       return var0 != null && var0.getValue("SwingSelectedKey") != null;
  43.    }
  44.  
  45.    static boolean isSelected(Action var0) {
  46.       return Boolean.TRUE.equals(var0.getValue("SwingSelectedKey"));
  47.    }
  48.  
  49.    public AbstractAction() {
  50.       this.enabled = true;
  51.    }
  52.  
  53.    public AbstractAction(String var1) {
  54.       this.enabled = true;
  55.       this.putValue("Name", var1);
  56.    }
  57.  
  58.    public AbstractAction(String var1, Icon var2) {
  59.       this(var1);
  60.       this.putValue("SmallIcon", var2);
  61.    }
  62.  
  63.    public Object getValue(String var1) {
  64.       if (var1 == "enabled") {
  65.          return this.enabled;
  66.       } else {
  67.          return this.arrayTable == null ? null : this.arrayTable.get(var1);
  68.       }
  69.    }
  70.  
  71.    public void putValue(String var1, Object var2) {
  72.       Object var3 = null;
  73.       if (var1 == "enabled") {
  74.          if (var2 == null || !(var2 instanceof Boolean)) {
  75.             var2 = false;
  76.          }
  77.  
  78.          var3 = this.enabled;
  79.          this.enabled = (Boolean)var2;
  80.       } else {
  81.          if (this.arrayTable == null) {
  82.             this.arrayTable = new ArrayTable();
  83.          }
  84.  
  85.          if (this.arrayTable.containsKey(var1)) {
  86.             var3 = this.arrayTable.get(var1);
  87.          }
  88.  
  89.          if (var2 == null) {
  90.             this.arrayTable.remove(var1);
  91.          } else {
  92.             this.arrayTable.put(var1, var2);
  93.          }
  94.       }
  95.  
  96.       this.firePropertyChange(var1, var3, var2);
  97.    }
  98.  
  99.    public boolean isEnabled() {
  100.       return this.enabled;
  101.    }
  102.  
  103.    public void setEnabled(boolean var1) {
  104.       boolean var2 = this.enabled;
  105.       if (var2 != var1) {
  106.          this.enabled = var1;
  107.          this.firePropertyChange("enabled", var2, var1);
  108.       }
  109.  
  110.    }
  111.  
  112.    public Object[] getKeys() {
  113.       if (this.arrayTable == null) {
  114.          return null;
  115.       } else {
  116.          Object[] var1 = new Object[this.arrayTable.size()];
  117.          this.arrayTable.getKeys(var1);
  118.          return var1;
  119.       }
  120.    }
  121.  
  122.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  123.       if (this.changeSupport != null && (var2 == null || var3 == null || !var2.equals(var3))) {
  124.          this.changeSupport.firePropertyChange(var1, var2, var3);
  125.       }
  126.    }
  127.  
  128.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  129.       if (this.changeSupport == null) {
  130.          this.changeSupport = new SwingPropertyChangeSupport(this);
  131.       }
  132.  
  133.       this.changeSupport.addPropertyChangeListener(var1);
  134.    }
  135.  
  136.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  137.       if (this.changeSupport != null) {
  138.          this.changeSupport.removePropertyChangeListener(var1);
  139.       }
  140.    }
  141.  
  142.    public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
  143.       return this.changeSupport == null ? new PropertyChangeListener[0] : this.changeSupport.getPropertyChangeListeners();
  144.    }
  145.  
  146.    protected Object clone() throws CloneNotSupportedException {
  147.       AbstractAction var1 = (AbstractAction)super.clone();
  148.       synchronized(this) {
  149.          if (this.arrayTable != null) {
  150.             var1.arrayTable = (ArrayTable)this.arrayTable.clone();
  151.          }
  152.  
  153.          return var1;
  154.       }
  155.    }
  156.  
  157.    private void writeObject(ObjectOutputStream var1) throws IOException {
  158.       var1.defaultWriteObject();
  159.       ArrayTable.writeArrayTable(var1, this.arrayTable);
  160.    }
  161.  
  162.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  163.       var1.defaultReadObject();
  164.  
  165.       for(int var2 = var1.readInt() - 1; var2 >= 0; --var2) {
  166.          this.putValue((String)var1.readObject(), var1.readObject());
  167.       }
  168.  
  169.    }
  170. }
  171.